#include<iostream>
#include<forward_list>

template<typename T>
void Print(const T&v)
{
    for(auto ite = v.begin();ite != v.end();ite++)
    {
        std::cout<<*ite<<" ";
    }
    std::cout<<std::endl;
}


int main()
{


    std::forward_list<int> l;

    for(int i=0;i<10;i++)
    {
        l.push_front(i + 1);
    }
   
    // Print(l);

    // l.reverse();

    // Print(l);

    // auto ite = l.begin();

    // ite++;

    // ite = l.before_begin();
    // l.insert_after(ite,999);

    // Print(l);

    // l.erase_after(ite);

    // Print(l);

    std::forward_list<int> l2;
    for(int i=0;i<10;i++)
    {
        l2.push_front(i+1);
    }

    Print(l);
    Print(l2);
    
    l.merge(l2);
    
    Print(l);

    Print(l2);





    return 0;
}